package com.example.utils;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.List;

/**
 * TODO
 * 分页结果传输,
 * EqualsAndHashCode(callSuper=true)：重写子类equals和hashcode方法时考虑父类属性
 * @Comment：最难的一次作业
 * @Date: 2023/11/1
 */


@EqualsAndHashCode(callSuper = true)
@Data
public class PageResult extends Result implements Serializable {

    //总记录数
    @ApiModelProperty(value = "总记录数")
    private long total;

    //分页数据
    @ApiModelProperty(value = "分页数据")
    private List<?> rows;

    public PageResult(long total, List<?> list) {
        this.setFlag(true);
        this.setMessage("分页查询成功");
        this.total = total;
        this.rows = list;
    }

    /**
     * 直接返回分页数据
     * total: 总记录条数
     * list: 分页数据列表
     * */
    public static Result pageResult(long total, List<?> list) {
        return new PageResult(total, list);
    }
}
